#!/bin/bash
# Skripti on tehty ja testattu normaaleilla Ubuntuilla, myös 12.04:llä. Kyllä se yleensä muillakin Ubuntuilla toimii ja joskus myös muilla Linuxeilla. Mutta esimerkiksi Xubuntu vaatii varsin mittavia muutoksia.    petteriIII 15.4.2012
reset # varmistetaan että päätteessä aloitetaan puhtaalta pöydältä
kanta=${0%/OMATSKRIPTIT*}; echo 'tätä skriptiä ajetaan paikasta: '$kanta
. $kanta/OMATSKRIPTIT/FUNKTIOKIRJASTO/valikkohiirelle # Valikko-funktioiden koodi liitetään tämän skriptin koodiin

Valittavat=('- pääohjelma on muodostettavissa vapaasti'
'- valikon kutsu on: ValitseValittavistaYksi "otsikko2" "otsikko1"'
'- lisää skriptiisi valittavat Valittavat-matriisiin esimerkiksi luettelemalla ne:'
'  Valittavat=(1 2 3 4 5 kukko kana piiroisen_pässi "mikäli valittavassa on välilyöntejä täytyy se laittaa heittomerkkien väliin")' 
'  tai:  Valittavat=({mistä..mihin..askel_jos_tarvitaan})'
'  tai:  Valittavat=$(tiedostolistaus "$Kansio") # käyttäen valikkohiirelle ja valikkonäppäimille kirjastojen funktiota' 
'  tai kurki tekotapa ohjeesta ohjeet/matriisi minkä ohje toimii kaikille käskyille.' 
'- lisää skriptiisi Valittavien muodostamisen jälkeen kutsu: ValitseValittavistaYksi "ohjerivi jos haluat määritellä sellaisen"'         
'- skriptissäsi toimitaan valintojen perusteella kun lisäät sinne käskyn tyyliä:' 
'  [[ "$ValitunTeksti" = "valikon vastaava tekstirivi" ]] && <käsky tai funktio_kutsu>' 
'                                                                                                                                              '
'  Palautusarvot ja huomautukset:' 
'- skripti palauttaa valitun rivin tekstin muuttujassa ValitunTeksti ja järjestysnumeron muuttujassa ValitunNumero.' 
'- mikäli matriisi ValitunArvo on määritelty niin palautettava muuttuja ValitunArvo saa siitä arvon: ValitunArvo[$Valitunnumero] ja se kelpaa'
'  funktio-kutsuksi yleensä sellaisenaan.' 
'- skripti palauttaa myös "ohjerivi jos...":n CRC32:n muuttujassa crc. CRC on 32-numeroinen ja se yksilöi ohjerivin hyvin.'
'- noiden perustoimintojen lisäksi toimintaa voi säätää tilanteeseen sopivaksi:'
'- jos et halua määritellä otsikkoa niin jonkinlainen otsikko muodostetaan automaattisesti. Otsikkorivi on rivi 2.' 
'- skriptissä voidaan kutsua valikkoa monta kertaa vaihtaen välillä Valittavat' 
'                                                                                                                                      '
'- Välillä eteen tulee tehtäviä, joiden suorittajista jotkut ovat ammattilaisia ja jotkut ei-ammattilaisia. Esimerkiksi kun koneen pakettivarastot' 
'  halutaan tyhjentää niin ammattilainen antaa käskyn: "sudo apt-get clean" koska sen kone ymmärtää, mutta ei-ammattilainen ei saa sitä'
'  pakettivarastoa tyhjennettyä koskei tuommoista käskyä tiedä olevankaan. Mutta kumpikin osaa käskeä: "tyhjennä pakettivarasto" ja sitten ohjelma'
'  suorittaa koodimuunnoksen muotoon: sudo apt-get clean. Valikkoohjelmassa tämä koodimuunnos tapahtuu valinnan yhteydessä: matriisissa Valittavat'
'  on selväkieliset käskyt ja matriisissa ValitunArvo on vastaavana jäsenenä se koodimuunnettu. Matriisin ValitunArvo voi jättää määrittelemättä jos ei'
'  katso siitä olevan mitään hyötyä. Määritys on esimerkiksi: ValitunArvo=({1..20..2})'
''
'- joskus kirjasto ei ole käytettävissä. Silloin voit kopioida seuraavien kahden rivin:'
'  poista rivi: kanta=${0%/OMATSKRIPTIT*}; echo "tätä skriptiä ajetaan paikasta: "$kanta'
'  kopio "Valikonesittely, hiiriversio"-skriptiin funktiot paikasta: ... /OMATSKRIPTIT/FUNKTIOKIRJASTO/Valikko_funktiot'
'  senjälkeen skripti toimii ilman kirjastoaan' 
'                                                                                                                                                 '
'Sitten valikko-ohjelman rajoituksista:' 
'- valittavat esitetään aina yhdellä sivulla. Sivulle mahtuu näytöstä riippuen noin 40 täyspitkää riviä ja mikäli valittavia on useampia aletaan niitä'
'  jakaa sarakkeisiin; sarakkeenpituus määräytyy automaattisesti')
ValitunArvo=({1..20..2})
                                            
ValitseValittavistaYksi "Tämä valikko otetaan ohjelmassa käyttöön seuraavalla tavalla:" "rivi valitaan osoittamalla sitä hiirellä ja näpäyttämällä rullaa. Valittua riviä voi vaihtaa myös pyörittämällä rullaa ja näpäyttämällä kun valittu on oikea"
reset
echo -e '\nolet valinnut rivin numero:'$ValitunNumero'. Tekstinä siinä on: '$ValitunTeksti'. Ja ValitunArvo: '$ValitunArvo'\n' 
read -p 'lopettaakseesi paina enter' 
 
